<?xml version="1.0"?>
<doc>
    <assembly>
        <name>MvvmFoundation.Wpf</name>
    </assembly>
    <members>
        <member name="T:MvvmFoundation.Wpf.RelayCommand`1">
            <summary>
            A command whose sole purpose is to 
            relay its functionality to other
            objects by invoking delegates. The
            default return value for the CanExecute
            method is 'true'.
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand`1.#ctor(System.Action{`0})">
            <summary>
            Creates a new command.
            <para>Note: The execution status is true anytime.</para>
            </summary>
            <param name="execute">The execution logic.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand`1.#ctor(System.Action{`0},System.Predicate{`0})">
            <summary>
            Creates a new command.
            </summary>
            <param name="execute">The execution logic.</param>
            <param name="canExecute">The execution status logic.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand`1.CanExecute(System.Object)">
            <summary>
            Defines the method that determines whether the command can execute in its current state.
            </summary>
            <param name="parameter"></param>
            <returns><b>true</b> if this command can be executed; otherwise, <b>false.</b></returns>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand`1.Execute(System.Object)">
            <summary>
            Defines the method to be called when the command is invoked.
            </summary>
            <param name="parameter">Data used by the command. If the command does not require data to be passed,
            this object can be set to <b>null</b>.</param>
        </member>
        <member name="E:MvvmFoundation.Wpf.RelayCommand`1.CanExecuteChanged">
            <summary>
            Occurs when changes occur that affect whether or not the command should execute.
            </summary>
            <remarks>
            <para>Normally, a command source calls CanExecute on the command when this event occurs.</para>
            <para>Normally, if the command cannot execute, the command source disables itself.</para>
            </remarks>
        </member>
        <member name="T:MvvmFoundation.Wpf.RelayCommand">
            <summary>
            A command whose sole purpose is to 
            relay its functionality to other
            objects by invoking delegates. The
            default return value for the CanExecute
            method is 'true'.
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand.#ctor(System.Action)">
            <summary>
            Creates a new command that can always execute.
            </summary>
            <param name="execute">The execution logic.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand.#ctor(System.Action,System.Func{System.Boolean})">
            <summary>
            Creates a new command.
            </summary>
            <param name="execute">The execution logic.</param>
            <param name="canExecute">The execution status logic.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand.CanExecute(System.Object)">
            <summary>
            Defines the method that determines whether the command can execute in its current state.
            </summary>
            <param name="parameter"></param>
            <returns><b>true</b> if this command can be executed; otherwise, <b>false.</b></returns>
        </member>
        <member name="M:MvvmFoundation.Wpf.RelayCommand.Execute(System.Object)">
            <summary>
            Defines the method to be called when the command is invoked.
            </summary>
            <param name="parameter">Data used by the command. If the command does not require data to be passed,
            this object can be set to <b>null</b>.</param>
        </member>
        <member name="E:MvvmFoundation.Wpf.RelayCommand.CanExecuteChanged">
            <summary>
            Occurs when changes occur that affect whether or not the command should execute.
            </summary>
            <remarks>
            <para>Normally, a command source calls CanExecute on the command when this event occurs.</para>
            <para>Normally, if the command cannot execute, the command source disables itself.</para>
            </remarks>
        </member>
        <member name="T:MvvmFoundation.Wpf.Messenger">
            <summary>
            Provides loosely-coupled messaging between
            various colleague objects.  All references to objects
            are stored weakly, to prevent memory leaks.
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.#ctor">
            <summary>
            Creates a new Messenger.
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.Register(System.String,System.Action)">
            <summary>
            Registers a callback method, with no parameter, to be invoked when a specific message is broadcasted.
            </summary>
            <param name="message">The message to register for.</param>
            <param name="callback">The callback to be called when this message is broadcasted.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.Register``1(System.String,System.Action{``0})">
            <summary>
            Registers a callback method, with a parameter, to be invoked when a specific message is broadcasted.
            </summary>
            <param name="message">The message to register for.</param>
            <param name="callback">The callback to be called when this message is broadcasted.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.NotifyColleagues(System.String,System.Object)">
            <summary>
            Notifies all registered parties that a message is being broadcasted.
            </summary>
            <param name="message">The message to broadcast.</param>
            <param name="parameter">The parameter to pass together with the message.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.NotifyColleagues(System.String)">
            <summary>
            Notifies all registered parties that a message is being broadcasted.
            </summary>
            <param name="message">The message to broadcast.</param>
        </member>
        <member name="T:MvvmFoundation.Wpf.Messenger.MessageToActionsMap">
            <summary>
            This class is an implementation detail of the Messenger class.
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.MessageToActionsMap.AddAction(System.String,System.Object,System.Reflection.MethodInfo,System.Type)">
            <summary>
            Adds an action to the list.
            </summary>
            <param name="message">The message to register.</param>
            <param name="target">The target object to invoke, or null.</param>
            <param name="method">The method to invoke.</param>
            <param name="actionType">The type of the Action delegate.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.MessageToActionsMap.GetActions(System.String)">
            <summary>
            Gets the list of actions to be invoked for the specified message
            </summary>
            <param name="message">The message to get the actions for</param>
            <returns>Returns a list of actions that are registered to the specified message</returns>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.MessageToActionsMap.TryGetParameterType(System.String,System.Type@)">
            <summary>
            Get the parameter type of the actions registered for the specified message.
            </summary>
            <param name="message">The message to check for actions.</param>
            <param name="parameterType">
            When this method returns, contains the type for parameters 
            for the registered actions associated with the specified message, if any; otherwise, null.
            This will also be null if the registered actions have no parameters.
            This parameter is passed uninitialized.
            </param>
            <returns>true if any actions were registered for the message</returns>
        </member>
        <member name="T:MvvmFoundation.Wpf.Messenger.WeakAction">
            <summary>
            This class is an implementation detail of the MessageToActionsMap class.
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.WeakAction.#ctor(System.Object,System.Reflection.MethodInfo,System.Type)">
            <summary>
            Constructs a WeakAction.
            </summary>
            <param name="target">The object on which the target method is invoked, or null if the method is static.</param>
            <param name="method">The MethodInfo used to create the Action.</param>
            <param name="parameterType">The type of parameter to be passed to the action. Pass null if there is no parameter.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.Messenger.WeakAction.CreateAction">
            <summary>
            Creates a "throw away" delegate to invoke the method on the target, or null if the target object is dead.
            </summary>
        </member>
        <member name="T:MvvmFoundation.Wpf.PropertyObserver`1">
            <summary>
            Monitors the PropertyChanged event of an object that implements INotifyPropertyChanged,
            and executes callback methods (i.e. handlers) registered for properties of that object.
            </summary>
            <typeparam name="TPropertySource">The type of object to monitor for property changes.</typeparam>
        </member>
        <member name="M:MvvmFoundation.Wpf.PropertyObserver`1.#ctor(`0)">
            <summary>
            Initializes a new instance of PropertyObserver, which
            observes the 'propertySource' object for property changes.
            </summary>
            <param name="propertySource">The object to monitor for property changes.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.PropertyObserver`1.RegisterHandler(System.Linq.Expressions.Expression{System.Func{`0,System.Object}},System.Action{`0})">
            <summary>
            Registers a callback to be invoked when the PropertyChanged event has been raised for the specified property.
            </summary>
            <param name="expression">A lambda expression like 'n => n.PropertyName'.</param>
            <param name="handler">The callback to invoke when the property has changed.</param>
            <returns>The object on which this method was invoked, to allow for multiple invocations chained together.</returns>
        </member>
        <member name="M:MvvmFoundation.Wpf.PropertyObserver`1.UnregisterHandler(System.Linq.Expressions.Expression{System.Func{`0,System.Object}})">
            <summary>
            Removes the callback associated with the specified property.
            </summary>
            <param name="expression">A lambda expression like 'n => n.PropertyName'.</param>
            <returns>The object on which this method was invoked, to allow for multiple invocations chained together.</returns>
        </member>
        <member name="T:MvvmFoundation.Wpf.ObservableObject">
            <summary>
            This is the abstract base class for any object that provides property change notifications.  
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.ObservableObject.#ctor">
            <summary>
            Default constructor for a new object, that provides property change notifications
            </summary>
        </member>
        <member name="M:MvvmFoundation.Wpf.ObservableObject.RaisePropertyChanged(System.String)">
            <summary>
            Raises this object's PropertyChanged event.
            </summary>
            <param name="propertyName">The property that has a new value.</param>
        </member>
        <member name="M:MvvmFoundation.Wpf.ObservableObject.VerifyPropertyName(System.String)">
            <summary>
            Warns the developer if this object does not have
            a public property with the specified name. This 
            method does not exist in a Release build.
            </summary>
        </member>
        <member name="P:MvvmFoundation.Wpf.ObservableObject.ThrowOnInvalidPropertyName">
            <summary>
            Returns whether an exception is thrown, or if a Debug.Fail() is used
            when an invalid property name is passed to the VerifyPropertyName method.
            The default value is false, but subclasses used by unit tests might 
            override this property's getter to return true.
            </summary>
        </member>
        <member name="E:MvvmFoundation.Wpf.ObservableObject.PropertyChanged">
            <summary>
            Raised when a property on this object has a new value.
            </summary>
        </member>
    </members>
</doc>
